package com.zenithmind.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zenithmind.article.pojo.domain.ArticleLike;

public interface ArticleLikeService extends IService<ArticleLike> {

    void addOrUpdateArticleLike(ArticleLike articleLike);

    boolean getArticleLikeStatus(ArticleLike articleLike);
    
    /**
     * 点赞或取消点赞文章
     *
     * @param articleId 文章ID
     * @return 当前点赞状态
     */
    ArticleLike toggleLike(String articleId);
    
    /**
     * 检查用户是否已点赞文章
     *
     * @param articleId 文章ID
     * @param userId 用户ID
     * @return 是否已点赞
     */
    boolean checkUserLiked(String articleId, String userId);
    
    /**
     * 获取文章点赞数
     *
     * @param articleId 文章ID
     * @return 点赞数
     */
    long getLikeCount(String articleId);
    
    /**
     * 获取用户是否点赞过指定文章
     *
     * @param articleId 文章ID
     * @return 点赞记录
     */
    ArticleLike getUserLike(String articleId);
}
